# helloworld_int_gcc.s
.data                           # 数据段声明

# 系统调用号
.equ SYS_WRITE, 4
.equ SYS_EXIT,  1

# 定义要输出的字符串
msg : .string "Hello World!\n"  # 要输出的字符串
len = . - msg                   # 字符串长度

.text                           # 代码段声明
.global main                  # 指定入口函数
main:
    # write(1, msg, len)
    mov     $SYS_WRITE, %rax    # 系统调用号（sys_write）
    mov     $1, %rbx            # 参数一：文件描述符（stdout）
    mov     $msg, %rcx          # 参数二：要显示的字符串
    mov     $len, %rdx          # 参数三：字符串长度
    int     $0x80

    # exit(0)
    mov     $SYS_EXIT, %rax
    mov     $0, %rbx
    int     $0x80

# to run this file, follow the commands below
# $ gcc -no-pie helloworld_int_gcc.s
# $ ./a.out 
# Hello World!
